package main

import (
	"fmt"
	"os"
)

// os.ModePerm - 777最高权限 - 可读可写可执行
// 创建文件
// func createFile() {
// 	f, err := os.Create("test.txt")
// 	if err != nil {
// 		fmt.Printf("err: %v\n", err)
// 	} else {
// 		fmt.Printf("f: %v\n", f)
// 	}
// }

// 创建目录
func createDir() {
	//创建单个目录
	// err := os.Mkdir("test", os.ModePerm)
	// if err != nil {
	// 	fmt.Printf("err: %v\n", err)
	// }
	//创建多级目录
	err2 := os.MkdirAll("test/a/b", os.ModePerm)
	if err2 != nil {
		fmt.Printf("err2: %v\n", err2)
	}
}

// 删除目录
func removerDir() {
	//删除文件
	// err3 := os.Remove("test.txt")
	// if err3 != nil {
	// 	fmt.Printf("err3: %v\n", err3)
	// }
	err := os.RemoveAll("test")
	if err != nil {
		fmt.Printf("err: %v\n", err)
	}
}

// 获得工作目录
func getWd() {
	dir, err := os.Getwd()
	if err != nil {
		fmt.Printf("err: %v\n", err)
	} else {
		fmt.Printf("dir: %v\n", dir)
		//dir: C:\Users\pangzidawang\Desktop\mypro\golang\u8 - 标准库
	}
}

// 修改工作目录
func chWd() {
	err := os.Chdir("C:/Users/pangzidawang/Desktop/mypro/golang/u8 - 标准库")
	if err != nil {
		fmt.Printf("err: %v\n", err)
	}
	fmt.Println(os.Getwd())
}

// func chWd() {
// 	err := os.Chdir("d:/")
// 	if err != nil {
// 		fmt.Printf("err: %v\n", err)
// 	}
// 	fmt.Println(os.Getwd())
// }

// 获得临时目录
func getTmp() {
	s := os.TempDir()
	fmt.Printf("s: %v\n", s)
}

// 重命名文件
func renameFile() {
	err := os.Rename("test.txt", "test2.txt")
	if err != nil {
		fmt.Printf("err: %v\n", err)
	}
}

// 读文件
func readFile() {
	b, err := os.ReadFile("test2.txt")
	if err != nil {
		fmt.Printf("err: %v\n", err)
	} else {
		fmt.Printf("b:%v\n", string(b[:])) //通过字符串切片来访问
	}
}

// 写文件
func writeFile() {
	s := "hello world"
	os.WriteFile("test2.txt", []byte(s), os.ModePerm)
}
func main() {
	//createFile()
	//createDir()
	//removerDir()
	// chWd()
	// getWd()
	// renameFile()
	//readFile()
	writeFile()

}
